#ifndef NOTIFY_NOTIFYMESSAGENOTIFICATION_H
#define NOTIFY_NOTIFYMESSAGENOTIFICATION_H

#include "notifynotification.h"

namespace Account {
class Member;
}
namespace Converse {
class AbstractMessage;
}
namespace Notify {

class MessageNotification : public Notification
{
    Q_OBJECT
public:
    enum MessageNotificationType {
        TextMessageNotificationType,
        PhotoMessageNotificationType,
        VoiceMessageNotificationType
    };

public:
    explicit MessageNotification(QObject *parent = 0);
    virtual ~MessageNotification();
    
public:
    virtual NotificationType notificationType() const;

public:
    virtual MessageNotificationType messageNotificationType() const = 0;

public:
    virtual QString text() const = 0;   
    virtual const Converse::AbstractMessage *message() const = 0;
};

} // namespace Nofity

#endif // NOTIFY_NOTIFYMESSAGENOTIFICATION_H
